import { defineConfig, loadEnv } from 'vite';
import vue from '@vitejs/plugin-vue';
import VueSetupExtend from 'vite-plugin-vue-setup-extend';
import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
import EnvironmentPlugin from 'vite-plugin-environment';

export default defineConfig(({ mode }) => {
    const env = loadEnv(mode, process.cwd());
    const APP_BASE_URL = env.VITE_APP_BASE_URL || 'http://193.112.98.218:19091/admin'
    return {
        base: './',
        plugins: [
            vue(),
            VueSetupExtend(),
            AutoImport({
                resolvers: [ElementPlusResolver()]
            }),
            Components({
                resolvers: [ElementPlusResolver()]
            }),
            EnvironmentPlugin({
                VITE_APP_BASE_URL: null
            })
        ],
        optimizeDeps: {
            include: ['schart.js']
        },
        resolve: {
            alias: {
                '@': '/src',
                '~': '/src/assets'
            }
        },
        define: {
            __VUE_PROD_HYDRATION_MISMATCH_DETAILS__: "true",
        },
        server: {
            proxy: {
                '/api-dev': {
                    target: APP_BASE_URL,
                    changeOrigin: true,
                    rewrite: (path) => path.replace(/^\/api-dev/, '')
                }
            }
        }
    };
});
